//
//  JKBombView.h
//  JKOCTools
//
//  Created by 朱凯 on 2017/11/25.
//  Copyright © 2017年 JooKey. All rights reserved.
//

#import <UIKit/UIKit.h>

typedef enum : NSUInteger {
    JKBombViewTargetPositionTop     = 1 << 0,
    JKBombViewTargetPositionMid     = 1 << 1,
    JKBombViewTargetPositionBottom  = 1 << 2,
    
    JKBombViewOriginPositionTop     = 1 << 3,
    JKBombViewOriginPositionMid     = 1 << 4,
    JKBombViewOriginPositionBottom  = 1 << 5,
    
    JKBombViewPositionTop           = JKBombViewTargetPositionTop | JKBombViewOriginPositionTop,
    JKBombViewPositionBottom        = JKBombViewTargetPositionBottom | JKBombViewOriginPositionBottom,
    JKBombViewPositionMid           = JKBombViewTargetPositionMid | JKBombViewOriginPositionMid,
} JKBombViewPosition;

/* 弹框视图，此视图不依赖于masnory
 目标实现功能：
 1.基于window的三种目标位置：贴上，居中，贴下
 2.基于位置的三种弹出方式：自上而下，居中缩放，自下而上
 3.可控的自定义参数：动画时间，弹性系数，阴影透明度等
 4.可控的位置偏移offset：用于进一步自定义位置
 */
@interface JKBombView : UIControl

// 阴影部分是否能交互：能交互则点击会隐藏本视图，否则不，默认值：true
@property (nonatomic, assign) BOOL shadowUserInteractionEnabled;
// 阴影部分的透明度，默认值：0.2
@property (nonatomic, assign) CGFloat shadowAlpha;
// 偏移，可以近一步控制target的位置
@property (nonatomic, assign) CGFloat offset;
// 弹簧的劲度系数，在0-1之间，值越小震动越剧烈，默认1（无弹簧效果）
@property (nonatomic, assign) CGFloat damping;
// 动画时间，默认0.25
@property (nonatomic, assign) CGFloat duration;

// 视图的位置（起始和目标），默认值：JKBombViewTargetPositionTop | JKBombViewOriginPositionTop
@property (nonatomic, assign) JKBombViewPosition position;


// 内容视图
@property (nonatomic, strong) UIView *contentView;

- (void)show;
- (void)hide;

@end
